home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1993
/
Internet Info CD-ROM (Walnut Creek) (1993).iso
/
inet
/
ien
/
ien-23
< prev
next >
Wrap
Text File
|
1988-12-01
|
11KB
|
233 lines
Jan 23, 1978
Danny Cohen
IEN: 23
Notebook Section 2.3.3.7
On Names, Addresses and Routings
--------------------------------
DESTINATIONs and SOURCEs of communication have names. These
destinations and sources are processes which exist outside the
communication subnet (e.g., in HOSTs) or inside it (e.g., in GATEWAYs,
NET-NODEs, etc).
Names are not necessarily unique to destinations. Certain processes may
have more than a single name. There are two kinds of names, names which
specify a unique process and names which specify a set of processes
(e.g., by capability).
A name tells WHO (or WHAT) the process is.
It is conceivable the names are arbitrary alphanumeric string suited for
human readability.
In addition to names, processes have addresses which indicate WHERE they
are. Again, it is possible that several different names share the same
address, and also that the same name has several addresses.
In order to move messages from sources to destinations, not only the
address of the destination (i.e., where it is) has to be known, but also
HOW-TO-GET-THERE. This knowledge is the ROUTING.
It is, obviously, possible that the same address can be reached by more
than one route.
These beautiful definitions of NAMEs (what), ADDRESSes (where) and
ROUTING (how-to-get-there) are borrowed from John Shoch.
To summarize: destinations and sources have names. Names are
"converted" into addresses, and addresses into routings. However, none
of the above mappings is a one-to-one correspondence.
Names have to be unambiguous within a certain environment.
From outside of this environment, the environment, too, has to be
specified in order to complete the name specification i.e., to
disambiguate it completely. This is the essence of hierarchical naming.
A very similar argument holds for addresses. Within a certain
environment addresses are unique, outside of it, the environment has to
Page 2
be specified ("addressed") too. Obviously, environments have
names/addresses which are unique within some bigger super-environment,
out of which, the super-environment has to be specified, too. And so
on.
Note that in general address (and names) are hierarchical. The
non-hierarchical case (or the "flat" situation) is a special case of
hierarchy, with depth equal to one, and width equal to the total number
of addresses.
The mapping of names to addresses cannot be computed, and can be
resolved only by reference to directories. Hence names from which
addresses can be computed are not names in the true sense, but addresses
in disguise.
These directories may be implemented in various ways, ranging from
off-line distributed directories (like paper based telephone
directories) to online centralized services (like 411) even by or
utilizing some broadcasting techniques.
The sole purpose of addressing is to support routing. The address which
tells where the destination is, is only important for determining the
routing (i.e., how to get there).
The key question is who performs the mapping of addresses into routing.
Several avenues can be pursued. (1) Sources supplying the entire
routing from source to destination (source-routing), or (2) source
supplying only the name (or address) of the destination, and the
communication subsystem performing the routing (communication-routing),
and (3) a hybrid of the above, by the source supplying some intermediate
destinations along the route, such that the communication subsystem can
perform the routing between these given destinations.
Note that (3) is a generalization of both (1) and (2). If done right,
it should have the advantages of both, else it may have their combined
disadvantages.
There are too many (obvious) problems associated with a complete
source-routing, (1), which are amplified in dynamically changed
networks. Basically, the user is faced with the need to specify
completely the routing whenever a message is sent. Since most of the
information needed for finding the routing is originated in the
communication subsystem, this is an undue burden which should be
minimized.
On the other hand the other extreme, the communication-routing, (2) , is
not problem-free either.
In the case of flat address-spaces too much knowledge has to be
maintained, with all the problems associated with this requirement.
Therefore, it is preferred to implement hierarchical addressing and
hierarchical routing, which matches it in a unique way. As a matter of
Page 3
fact, it seems that the most "natural" avenue is to follow the
well-debugged paradigm of the telephone system, and have both
hierarchical names, which are uniquely mapped into hierarchical
addresses.
One of the bigger drawbacks of this scheme is that it will not support
an application of INTERnet fast facilities in order to expedite INTRAnet
traffic, like using satellite links (which belong to SATnet) in order to
expedite internal coast-to-coast ARPAnet traffic.
Since the flat address space is a special case of the hierarchical one,
we would like to treat all address spaces as hierarchical ones, and
consider the argument of flat vs. hierarchical as optimizing the
depth/width combination.
The disadvantage of a big flat name/address subspace (as opposed to a
hierarchical one) is that it requires that large table of addresses be
maintained, that names/addresses be cleared before being put into use
and that everyone knows about everyone, a requirement which is not
feasible to fulfill when the dimension of this space keeps increasing.
An example for a very flat name space is the social security number, as
opposed to telephone numbers and mailing addresses. Note that this
space is a subspace of a bigger space which includes also SSNs (or other
unique IDs) of people in other countries.
Note that both telephone numbers and mailing addresses are a kind of
routing of the 3rd flavor. It is supplied by the source, and may have
as much (or as little) information to get to the environment where the
next piece of routing is nonambiguous.
An example of source-routing, (1), is calling from a centrex system to a
centrex system in another area code.
An example of communication-routing, (2), is the interHOST traffic
within the ARPAnet.
An example of user-assisted-routing, (3), is an operator-assisted person
to person call without knowing the number. For example, one has to tell
the communication subsystem (here, a sequence of operators) that the
other person is (a) in Massachusetts, (b) in Cambridge, (c) at MIT, and
finally (d) the final destinations name. In this case the source
supplied the sub-destination "Masachusetts" (or 617) but the
communication system was free to choose the optimal route there.
Another example is a call which is placed from a military base to
another. Normally the AUTOVON system is used, but many times at the
discretion of the individuals, they use the AUTOVON system to get
outside to the commercial network, and back to the destination base,
where the AUTOVON system is used again for the terminal contact. This
is a example of an INTRAnet (AUTOVON) call which for quality,
convenience and similar reasons, uses INTERnet facilities.
Page 4
Another interesting observation about the telephone systems. Telephone
addresses are of variable length. This does not mean only that
different addresses may have different lenghts, but that the same
address may have several lenghts, depending from where it is refered to.
For example inside most organizations extensions may be reached by
dialing about 4 digits only. from outside the organization, but still
in the neighborhood 7 digits are usually needed, from a larger
neighborhood it is 8, then 10, and so on. This is to be expected since
telephone numbers are the basis for the hybrid routing used. Telephone
numbers are parsed sequentially, and can traverse hierarchies up and
down because of the prefixes used to indicate the "up" direction (like
the 9 for outside, and the 1 for area code).
It seems to me that we might like to implement a very similar structure
for addressing.
One way to implement such a user assisted routing is to implement a
special FORWARDER process (on a well-known PORT), whose function is to
receive messages, retrieve the "next-address" from its data and resubmit
it for transportation to the next sub-destination, while doing the right
things to acknowledgments, duplicates and the like. These processes do
not have to be implemented on all systems, but only on a certain subset,
where this capability is needed. This would eliminate the need for
making all processes able to handle variable length multilevel
addressing.
SUMMARY
The address space should be hierarchical, because it is more general
than the flat space, and mainly because it may be not practical to have
everyone knowing about all the other participants in this space.
The format of the ADDRESS should be made more general (extensible).
Routing which follows the hierarchy of the address space has
difficulties in utilizing internet resources for intranet traffic.
The distribution of all the knowledge needed to support routing which is
entirely performed by the communication subsystem may also turn out to
be impractical. Relying always on the source to supply the entire
routing has its obvbious problems.
Therefore we highly recommend that the hybrid approach will be used.
ACKNOWLEDGMENT
Recent discussions with John Shoch and David Boggs were a very
educational experience for me, and helped me to understand these issues
better. This note and John Shoch's note on the same subject (both are
prepared for the same January 1978 TCP meeting) cover similar issues,
and are basically in agreement about most issues. However, minor
differences between the them seem to justify their existance separately.